package com.yz.design.domain;

import lombok.Data;

import java.util.Calendar;
import java.util.Date;

/**
 * @ClassName NumberingNo
 * @Description 编号抽象实体
 * @Author 广长
 * @Date 2020/7/13
 * @Version V1.0
 **/
@Data
public abstract class AbstractNumberingNo {
    /**
     * 默认前缀 设计模式
     */
    private String prefix = "";
    /**
     * 最大编号
     */
    private String maxNumberingNo = "";
    /**
     * 后缀默认长度 0001
     */
    private Integer suffixLen = 4;

    /**
     * @Description: 获取编号
     * @Author: 广长
     * @Date: 2020/7/13
     * @Return: java.lang.String
     */
    public abstract String getNumberingNo();

    /**
     * @Description: 获取明细编号
     * @Author: 广长
     * @Date: 2020/7/13
     * @Param id:
     * @Return: java.lang.String
     */
    public abstract String getInfoNumberingNo(Integer id);

    /**
     * @Description: 当前年份后两位生成前缀
     * @Author: 广长
     * @Date: 2020/7/13
     * @Param prefix: 指定前缀
     * @Return: java.lang.String
     */
    public String getNumberingNoPrefixByYear(String prefix) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        String currentYear = String.valueOf(cal.get(Calendar.YEAR));
        return prefix + currentYear.substring(currentYear.length() - 2);
    }

}
